package com.orm.mybatisplus.mapper.master1;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.orm.mybatisplus.entity.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * <p>
 * User Mapper
 * </p>
 *
 * @author yangkai.shen
 * @date Created in 2018-11-08 10:54
 */
public interface UserMapper1 extends BaseMapper<User> {

    /**
     * 查询所有用户
     *
     * @return 用户列表
     */
    @Select("SELECT * FROM orm_user")
    List<User> selectAllUser();

    /**
     * 查询所有用户
     *
     * @return 用户列表
     */
    @Select("SELECT * FROM orm_user where id = 6")
    List<User> selectAllUserForId6();

    /**
     * 根据id查询用户
     *
     * @param id 主键id
     * @return 当前id的用户，不存在则是 {@code null}
     */
    @Select("SELECT * FROM orm_user WHERE id = #{id}")
    User selectUserByIdMaster1(Long id);




    /**
     * 保存用户
     *
     * @param user 用户
     * @return 成功 - {@code 1} 失败 - {@code 0}
     */
    int saveUser(User user);
//    int saveUser(@Param("user") User user);尽量不要用 @Param(“user”) 不然传过去的是另一个实体类 获取不了自增id

    /**
     * 保存用户
     *
     * @param user 用户
     * @return 成功 - {@code 1} 失败 - {@code 0}
     */
    @Insert("INSERT INTO orm_user(name,password,salt,email,phone_number,status,create_time,last_login_time,last_update_time)" +
            " VALUES (#{name},#{password},#{salt},#{email}," +
            " #{phoneNumber}, #{status}, #{createTime},#{lastLoginTime}, #{lastUpdateTime})")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    int saveUserWithoutXml(User user);

    /**
     * 删除用户
     *
     * @param id 主键id
     * @return 成功 - {@code 1} 失败 - {@code 0}
     */
    int deleteById(@Param("id") Long id);

}
